package pe.com.hermes.hermetic.negocio.serviceimpl;

import java.sql.SQLException;

import java.util.Collections;
import java.util.List;

import org.apache.log4j.Logger;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import pe.com.hermes.hermetic.beans.ConfBean;
import pe.com.hermes.hermetic.beans.UsersNivConfBean;
import pe.com.hermes.hermetic.exception.NiveAutoNotFoundException;
import pe.com.hermes.hermetic.exception.TooManyNiveAutoByUsuaException;
import pe.com.hermes.hermetic.modelo.dao.ConfiguracionDAO;
import pe.com.hermes.hermetic.negocio.service.ConfiguracionService;

@Service
public class ConfiguracionServiceImpl implements ConfiguracionService {
  protected final static Logger logger = Logger.getLogger(TablServiceImpl.class);
    @Autowired
    private ConfiguracionDAO configuracionDAO;

  public List getListNivConf(String codClieOrig, String codClieDest, String codSucuHTB, String tipProc){
    return configuracionDAO.getListNivConf(codClieOrig, codClieDest, codSucuHTB, tipProc);
  }
  
  public int existPedPendAuto(int codClieOrig,int codClieDest, String tipProc, String codSucuHtb){
      return configuracionDAO.existPedPendAuto(codClieOrig,codClieDest, tipProc, codSucuHtb);
  }

    public int saveNivAutConf(ConfBean nivAuto, String usuModi, String compModi) {
        return configuracionDAO.saveNivAutConf(nivAuto, usuModi, compModi);
    }

    public int actuNivAutConf(int codNiv, String desNiv, String usuModi,String address) {
        return configuracionDAO.actuNivAutConf(codNiv, desNiv, usuModi, address);
    }

    public int delNivAutConf(int codNiv, String usuWeb, String nomComp) {
        return configuracionDAO.delNivAutConf(codNiv, usuWeb, nomComp);
    }

    public int getNextNivAuto(int codClieOrig, int codClieDest, int tipProc,int codSucuHtb, int numCateNive) {
        return configuracionDAO.getNextNivAuto(codClieOrig, codClieDest, tipProc, codSucuHtb, numCateNive);
    }

    public List getListUsuaCliente(int codSucuHTB, int codClie, int indCorp) {
        return configuracionDAO.getListUsuaCliente(codSucuHTB, codClie, indCorp);
    }

    public List getUsuConfNiv(int codNiveAuto, int codSucuHTB, int codClieOrig,int codClieDest, int numNive, int tipProc) {
        return configuracionDAO.getUsuConfNiv(codNiveAuto, codSucuHTB, codClieOrig, codClieDest, numNive, tipProc);
    }

    public int saveUserNivAutConf(int codNiv, String usuWeb, String usuCrea, String compCrea) {
        return configuracionDAO.saveUserNivAutConf(codNiv, usuWeb, usuCrea, compCrea);
    }

    public int actuUsuNivAutConf(int codNiv, int numSecu, String usuWeb, String usuModi, String compModi) {
        return configuracionDAO.actuUsuNivAutConf(codNiv, numSecu, usuWeb, usuModi, compModi);
    }

    public int delUsuNivAutConf(int codNiv, int numSecu, String usuModi, String compModi) {
        return configuracionDAO.delUsuNivAutConf(codNiv, numSecu, usuModi, compModi);
    }

    public int copyNivAutConf(int codClieOrig, int codClieDest,int codBancDest, int codSucuHtb, int codPro,String usuModi, String compModi) {
        return configuracionDAO.copyNivAutConf(codClieOrig, codClieDest, codBancDest, codSucuHtb, codPro, usuModi, compModi);
    }

    public int getCodClieEleg(String listCodClie, int codClieDest, int tipProc) {
        return configuracionDAO.getCodClieEleg(listCodClie, codClieDest, tipProc);
    }

    public String getProcCcom(String listCodClie, int codSucuHtb) {
        return configuracionDAO.getProcCcom(listCodClie, codSucuHtb);
    }

    public int getNumNiveAuto(int codClieOrig, int codClieDest, int tipProc,int codSucuHtb) {
        return configuracionDAO.getNumNiveAuto(codClieOrig, codClieDest, tipProc, codSucuHtb);
    }

    public int getNiveAutoByUsua(String usuWeb, int codClieOrig, int codClieDest, int tipProc, int codSucuHtb) throws TooManyNiveAutoByUsuaException,NiveAutoNotFoundException,SQLException{
        return configuracionDAO.getNiveAutoByUsua(usuWeb, codClieOrig, codClieDest, tipProc, codSucuHtb);
    }

    public Integer grabarParamGene(Integer codRazoSoci, Integer codCorp,
                                   Integer codSucu, Integer codParm,
                                   String valorLargo, String valorCorto,String usuario) {
        return configuracionDAO.grabarParamGene(codRazoSoci,codCorp,codSucu,codParm,valorLargo,valorCorto,usuario);
    }

    public List<UsersNivConfBean> getListUsersByProcAndClie(int codClieOrig,int codClieDest,int codSucuHtb,int codPro) throws Exception{
        return configuracionDAO.getListUsersByProcAndClie(codClieOrig, codClieDest, codSucuHtb, codPro);
    }

}
